<!DOCTYPE html>
<html lang="cn">
<head>
    <meta charset="UTF-8">
    <title>JS函数的参数</title>
</head>
<body>
    <h1>JS函数的参数</h1>
    <hr>

    <script>
     
    // 实参个数
    function demo(m,n){
        console.log(m+n);
    }        
    demo('asdasd','dwdaas');
    demo('asdasd','dwdaas','dasd'); // 多参会被hulve
    demo('asdasd'); // 少参 那么为 undefined;

    // 参数默认值
    // 在ES6中 // function demo(m,n='笑呵呵'){} 是可以的 同php一样
    // 如果在ES5中
    function test(m,n){
        // if (n == underfined) {
        //         n = 'xaidasd';    // 利用 判断 但 参数没有的时候 就意味着 是defined 所以 就赋予它值 为默认值;

        // }
        // 
         // 或者
        n = n || '默认值';     // 运用 或 语法 当前面不相等时 就让他等于后面 underfined就想当于 false
                            //    用   ?:  也可以
        
        console.log(m + '和' + n + '去约跑!!');
        
    }
    test('帅帅', '小马哥');
    test('帅帅');


     // 可变参数个数的函数
     // max()   min();
     // 
     //PHP  中
        // func_get_args();  将里面所有参数以数组形式输出  
        // func_get_arg();   输出指定键下的参数值
        // func_num_args();  统计一共多少参数
        // 
    // 实现求和函数
    function sum(){
        // 数组对象
        // console.log(arguments);//  在 JS中 以 arguments() 方法来输出 参数数组对象
        var num = 0;
        for(var i = 0;i<arguments.length;i++){
            num += arguments[i];        // js中 以length来统计一共多少参数

        }
        return num;
    }
    sum();
     console.log(sum(5));
    console.log(sum(5,6));
    console.log(sum(5,6,566));
    console.log(sum(5,6,566,66));
    console.log(sum(5,6,566,66456,146,46));   

    </script>
    
    

</body>
</html>